/**
 * @file Menu.h
 * @author Jasper
 * @brief
 * @version 0.1
 * @date 2024-12-14
 *
 * @copyright Copyright (c) 2024
 *
 */

#pragma once
#include "Alarm_Clock\Alarm_Clock.h"
/* Includes ------------------------------------------------------------------*/
#define COL_MAX 20
#define RAW_MAX 4
typedef enum
{
    MENU_Time = 0,
    MENU_Light,
    MENU_Music,
    Menue_Whether,
    MENU_Alarm_Clock,
    MENU_Setting,
    MENU_About,
    Num_Of_Menu
} Typedef_Emnu_Menu;

typedef enum
{
    Time_Page,
    Menu_Page,
    Sub_Page,
    Detail_Page,
    Final_Page,
    NUM_OF_PAGE
} Typedef_Enum_Page;
typedef enum
{
    MODI_Month = 0,
    MODI_Day,
    MODI_Hour,
    MODI_Min_1,
    MODI_Min_2,
    MODI_Setting,
    NUM_OF_MODIFY
} Typedef_MODI_ALARM;

extern Struct_Alarm_Clock MENU_TMP_ALARM;
extern int MODI_ALARM[];
extern int mode;                  // 菜单项索引
extern int OLED_Page;             // 0是时间，1是菜单
extern int Song_Choose;           // 歌曲选择索引
extern int TMP_Play_Song;         // 歌曲播放索引
extern int TMP_ACLOCK;            // 闹钟索引
extern int TMP_MODI_ACLOCK;       // 闹钟修改索引
extern int Menu_X[Num_Of_Menu];   // 菜单横坐标显示索引
extern int Modi_Alarm_First_time; // 闹钟初始化状态变量
extern const char *Menu_Char[];   // 菜单图片索引
extern int Modi_Dispaly_base;     // 闹钟修改项索引
int MAIN_MENU_Limit(int Tmp_Menu);
int Alarm_Print_Limit(int Tmp_Menu);
void Return_Time_Page(void);
void Return_Manu_Page(void);
int limited(int Tmp_Num, int Tmp_Min, int Tmp_Max);
